package cn.iocoder.yudao.module.trade.controller.app.fruitcard.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STFontId;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "用户 App - 水果卡 Response VO")
@Data
public class AppFruitCardRespVO {

    @Schema(description = "卡片id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long cardId;
    @Schema(description = "卡片明细id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long detailId;
    @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long userId;

    @Schema(description = "卡片类型", requiredMode = Schema.RequiredMode.REQUIRED)
    private String cardType;

    @Schema(description = "卡片类型名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String cardTypeName;

    @Schema(description = "总次数", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer times;

    @Schema(description = "卡片描述", requiredMode = Schema.RequiredMode.REQUIRED)
    private String description;

    @Schema(description = "有效期（月）", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer validMonth;

    @Schema(description = "关联水果品种类型", requiredMode = Schema.RequiredMode.REQUIRED)
    private String fruitType;

    @Schema(description = "关联水果品种名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String fruitTypeName;

    @Schema(description = "卡号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String cardNo;

    @Schema(description = "卡状态 0--正常 1--禁用", requiredMode = Schema.RequiredMode.REQUIRED)
    private Boolean status;

    @Schema(description = "使用次数", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer uses;

    @Schema(description = "激活时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime activationTime;

    @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime expiredTime;

    @Schema(description = "是否过期", requiredMode = Schema.RequiredMode.REQUIRED)
    private Boolean isExpire;

    List<TimesDetail> detailList;

    @Data
    public static class TimesDetail {

        @Schema(description = "第几次", requiredMode = Schema.RequiredMode.REQUIRED)
        private Integer sort;

        @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED)
        private String orderNo;

        @Schema(description = "快递编号", requiredMode = Schema.RequiredMode.REQUIRED)
        private String expressNo;

        @Schema(description = "商品标题", requiredMode = Schema.RequiredMode.REQUIRED)
        private String title;

        @Schema(description = "水果图片", requiredMode = Schema.RequiredMode.REQUIRED)
        private String url;

        @Schema(description = "状态 0--未开始  1--待发货 2--已发货 3 --已完成", requiredMode = Schema.RequiredMode.REQUIRED)
        private String status;

        @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
        private String beginDate;

        @Schema(description = "收货时间", requiredMode = Schema.RequiredMode.REQUIRED)
        private String confirmDate;

    }
}
